Ajax এর মাধ্যমে Request
এবং Response
Handling হলো ওয়েব সার্ভার এবং ক্লায়েন্ট (ব্রাউজার) এর মধ্যে ডেটা আদান-প্রদানের একটি প্রক্রিয়া। Ajax রিকোয়েস্টের মাধ্যমে সার্ভারে তথ্য পাঠানো হয় এবং সার্ভার থেকে প্রাপ্ত রেসপন্স ডেটা প্রসেস করা হয়। XMLHttpRequest
অবজেক্ট ব্যবহার করে এই প্রক্রিয়াটি সম্পন্ন করা হয়। নিচে Request
এবং Response
Handling এর বিস্তারিত আলোচনা এবং উদাহরণ তুলে ধরা হলো।
Request
Handling হলো সেই প্রক্রিয়া, যেখানে একটি Ajax রিকোয়েস্ট সার্ভারে পাঠানো হয় এবং এই রিকোয়েস্টটি কীভাবে সেটআপ এবং পরিচালনা করা হয়।
১. XMLHttpRequest
অবজেক্ট তৈরি করা:
XMLHttpRequest
অবজেক্ট তৈরি করা হয়, যা Ajax রিকোয়েস্ট পরিচালনা করবে।var xhr = new XMLHttpRequest();
২. রিকোয়েস্ট ওপেন করা:
open()
মেথড ব্যবহার করে HTTP মেথড (যেমন GET বা POST), সার্ভারের URL এবং অ্যাসিনক্রোনাস বা সিঙ্ক্রোনাস সেট করা হয়।xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
৩. রিকোয়েস্ট হেডার সেট করা (ঐচ্ছিক):
setRequestHeader()
মেথড ব্যবহার করে কনটেন্ট টাইপ বা অন্যান্য হেডার সেট করা হয়।xhr.setRequestHeader("Content-Type", "application/json");
৪. রিকোয়েস্ট পাঠানো:
send()
মেথড ব্যবহার করে রিকোয়েস্টটি সার্ভারে পাঠানো হয়।xhr.send();
send()
এ পাঠানো হয়।Response
Handling হলো সেই প্রক্রিয়া, যেখানে সার্ভার থেকে প্রাপ্ত রেসপন্স ডেটা প্রসেস করা হয় এবং UI বা HTML DOM আপডেট করা হয়।
১. onreadystatechange
ইভেন্ট হ্যান্ডলার সেট করা:
onreadystatechange
ইভেন্ট হ্যান্ডলার ট্রিগার হয়।xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
// রেসপন্স প্রসেস করা
}
};
readyState
এবং status
ব্যবহার করে চেক করা হয় যে রিকোয়েস্ট সম্পূর্ণ এবং সফল হয়েছে কিনা।readyState === 4
নির্দেশ করে রিকোয়েস্ট সম্পূর্ণ।status === 200
নির্দেশ করে রিকোয়েস্ট সফল।২. রেসপন্স ডেটা প্রসেস করা:
responseText
বা responseXML
ব্যবহার করে ডেটা রিসিভ করা হয় এবং প্রসেস করা হয়।if (xhr.readyState === 4 && xhr.status === 200) {
var data = JSON.parse(xhr.responseText);
console.log(data);
}
responseText
ব্যবহার করে প্লেইন টেক্সট বা JSON ডেটা রিসিভ করা যায়।responseXML
ব্যবহার করা হয়।৩. HTML DOM আপডেট করা:
document.getElementById("data-container").innerHTML = `
<h2>${data.title}</h2>
<p>${data.body}</p>
`;
এরর হ্যান্ডলিং:
status
২০০ না হয়), তবে একটি এরর মেসেজ বা লজিক্যাল এক্সেপশন হ্যান্ডল করা হয়।if (xhr.readyState === 4 && xhr.status !== 200) {
console.error("Request failed with status: " + xhr.status);
}
function fetchData() {
// XMLHttpRequest অবজেক্ট তৈরি করা
var xhr = new XMLHttpRequest();
// রিকোয়েস্ট ওপেন করা (GET মেথড, URL এবং অ্যাসিনক)
xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true);
// রেসপন্স হ্যান্ডলিং সেট করা
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // রিকোয়েস্ট সম্পূর্ণ
if (xhr.status === 200) { // রিকোয়েস্ট সফল
var data = JSON.parse(xhr.responseText); // JSON ডেটা প্রসেস করা
document.getElementById("data-container").innerHTML = `
<h2>${data.title}</h2>
<p>${data.body}</p>
`;
} else {
// এরর হ্যান্ডলিং
document.getElementById("data-container").innerHTML = "Error loading data!";
}
}
};
// রিকোয়েস্ট পাঠানো
xhr.send();
}
fetchData()
ফাংশন কল করলে একটি GET রিকোয়েস্ট তৈরি হয় এবং https://jsonplaceholder.typicode.com/posts/1
থেকে ডেটা ফেচ করা হয়।এই ধাপগুলোর মাধ্যমে Ajax এর Request এবং Response Handling সম্পন্ন করা হয়, যা ওয়েব পেজকে ডায়নামিক এবং ইন্টারেক্টিভ করে তোলে।
Read more